package com.nuoniu.sibanyun.service.finance;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nuoniu.sibanyun.entity.finance.VAccountingLedger;
import com.nuoniu.sibanyun.entity.finance.VAccountingVoucherDetail;
import com.nuoniu.sibanyun.entity.finance.VAssetsLiabilitiesFormula;
import com.nuoniu.sibanyun.entity.finance.VAssetsLiabilitiesMain;

import java.util.List;


/**
 * <p>
 * 资产负债表 服务类
 * </p>
 *
 * @author 小啊刚
 * @since 2021-05-26
 */
public interface IVAssetsLiabilitiesMainService extends IService<VAssetsLiabilitiesMain> {

    /**
     * 保存
     * @author 小啊刚
     * @date 2021-05-27
     */
    void saveAssetsLiabilities(List<VAssetsLiabilitiesMain> assetsLiabilities);

    /**
     * 获取列表
     * @author 小啊刚
     * @date 2021-05-27
     */
    List<VAssetsLiabilitiesMain> getAssetsLiabilities(Integer accountPeriod, Integer type);

    /**
     * 获取公式列表
     * @author 小啊刚
     * @date 2021-05-28
     */
    List<VAssetsLiabilitiesFormula> getFormulaList(Long alId);

    /**
     * 获取科目总账
     * @author 小啊刚
     * @date 2021-05-28
     */
    List<VAccountingLedger> getAccountingLedger(String code);

    /**
     * 重新计算公式
     * @author 小啊刚
     * @date 2021-06-15
     */
    void newCountFormula(List<VAccountingVoucherDetail> voucherDetails);

    /**
     * 保存公式
     * @author 小啊刚
     * @date 2021-06-25
     */
    void saveFormula(List<VAssetsLiabilitiesMain> assetsLiabilities);

    /**
     * 导出报表
     * @author 小啊刚
     * @date 2022-06-11
     */
    void exportData(Integer accountYear, Integer accountPeriod, Integer type);
}
